package com.ftg.learn.chapter07;

import com.sun.org.apache.xpath.internal.functions.FuncConcat;
import jdk.management.resource.internal.inst.SocketOutputStreamRMHooks;

/**
 * 常用方法
 *
 * @author kangjx
 * @version 1.0
 * @date 2023/7/17 下午1:28
 */
public class String02 {

    public static void main(String[] args) {
        String s1 = "abc";
        String s2 = "abc";

        String s3 = new String("abc");
        String s4 = new String("abc");

        String s5 = "a" + "b" + "c";

        String s = "c";


        //jdk1.8 开始  new StringBuilder("ab").append(s);
        String s6 = "ab" + s;

        String s7 = s6.intern();
        String s8 = s6.intern();

        int[] as = {1, 2, 3};
        int[] as1 = {1, 2, 3};
        //基本表示判断値是否相同， 引用是否为同一段地址
        System.out.println(as == as1);
        // false  任何一个java全有equals方法   全是object （个例）
        System.out.println(as.equals(as1));

        // true 表示s1 与  s2地址相同
        System.out.println("------><-------");

        System.out.println(s1 == s2);
        System.out.println(s3 == s4);

        //字面値 "abc"
        System.out.println(s1.equals(s4));

        System.out.println(s1 == s5);

        //s1 指向常量池  s6  由于+ 和字符串变量 参与 做了优化 StringBuilder(常).append(s)
        System.out.println(s6 == s1);

        System.out.println(s7 == s1);
        System.out.println(s7 == s8);

        // 维视
        String s9 = "a".concat("b").concat("c");
        System.out.println(s1 == s9);


        String s10 = "def";
//        "aaaa" "aa"
        //项目 经理  甲方 ... 确认
        //架构人员  两个方法  2 3
        int sum = 0;
        for (int i = s10.indexOf("aa"); i != -1; i= s10.indexOf("aa",i+"aa".length())) {
            sum++;
        }

        System.out.println(sum);

//        实例名{变量名称}.方法()
        System.out.println(s10.charAt(2));
        System.out.println("abcdefghijk".indexOf("str",7));

        System.out.println("abc".equalsIgnoreCase("ABC"));
        System.out.println("abc".replace("b", "**"));

        System.out.println("abcdefghijk".substring(3).indexOf("c"));

        // 定义
        // == equals intern



        // 常用方法看了

    }

}
